package edu.lingnan.lmlibrary.service;

import edu.lingnan.lmlibrary.common.JSONResult;
import edu.lingnan.lmlibrary.dto.BookingSeatInfo;
import edu.lingnan.lmlibrary.dto.FloorSeats;
import edu.lingnan.lmlibrary.entity.Seat;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.client.RestTemplate;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 张晓航
 * @since 2022-02-26
 */
public interface SeatService extends IService<Seat> {
    /**
     * 通过指定楼层名称，该楼层的桌子数，每个桌子对应的座位数（数组）
     * @param fNum
     * @param deskCount
     * @param seatCounts
     * @return
     */
    int insertSeatsByFloorAndDeskAndSeatCounts(String fNum, Integer deskCount, ArrayList<Integer> seatCounts);

    /**
     * 指定一个楼层，得到该楼层所有的桌子信息数组，每个桌子包含的座位信息
     *@param fId 楼层编号
     */
    JSONResult<List<FloorSeats>> getDeskAndSeatCountsByFloorId(Integer fId);

    /**
     * 通过座位编号和学号预约座位
     * @param seatId:座位编号
     * @param sId：学号
     * @return
     */
    JSONResult<BookingSeatInfo> bookingSeatBySeatIdAndSid(Integer seatId, String sId, RestTemplate restTemplate);

}
